Apresentação de Resultados - Desafio Técnico

Feito por Lucas Lopes - 08/03/2022

Definição Do Problema

A empresa Bagy está procurando por maneiras de identificar os clientes-chave e fatores de sucesso de sua plataforma com o objetivo de identificar padrões e replicar ações para toda a base de clientes. Para isso será preciso analisar a base de pedidos dos lojistas, ou seja, a base de dados de compras efetuadas em sites que utilizam a plataforma Bagy E-commerce internacionalmente.

Com esses dados em mãos, poderemos propor ações que ajudem os lojistas a venderem mais e por consequência ficarem mais satisfeitos com a plataforma.



Tecnologias utilizadas nesta análise:

Linguagem Python

Linguagem SQL

HTML

Linguagem CSS

Vamos começar!
Para executar este Jupyter Notebook você precisará instalar todas as bibliotecas python listadas abaixo.


Importando as bibliotecas que iremos utilizar ao decorrer da análise.

Importando a base de dados de pedidos do e-commerce com a função pd.read_csv() da biblioteca pandas. Você pode encontrar os dados disponibilizados pela empresa Bagy clicando neste link.

A primeira coisa a se fazer é verificar os tipos dos dados que estamos trabalhando (texto, inteiros, reais e etc..).

Será necessário alterar o tipo dos dados das colunas StoreId para o tipo string e InvoiceDate para o tipo datetime. Isto nos trará facilidades ao trabalhar com relacionamento entre tabelas e operações com datas mais a frente.

Agora, vamos verificar se temos valores ausentes no conjunto de dados. Para isto, utilizamos o comando pd.isna e somamos o vetor de boleanos que é retornado.

Acima, podemos ver que temos valores ausentes apenas nas colunas Description e CustomerID. Existem muitas técnicas para tratamento de valores ausentes, porém não faremos nada a respeito destes valores nesta análise, pois eles não afetarão as respostas que pretendemos encontrar.

Abaixo, vamos utilizar o comando pd.shape para verificar a quantidade de linhas e colunas do nosso conjunto de dados.
Podemos ver que o conjunto de dados de pedidos possui 541909 observações (linhas) e 9 variáveis (colunas).

Utilizaremos o comando pd.describe() para verificar as estatísticas descritivas do conjunto de dados como média, desvio padrão e etc..

Finalmente, vamos visualizar uma parte do nosso conjunto de dados utilizado o comando pd.head()

Agora chegou a hora de fazer a análise exploratória dos dados, hora de fazer perguntas e encontrar as respostas.


Pergunta 1 - Quais as 10 lojas com maior faturamento em pedidos? Sumarize os dados dessa loja apresentando os seguintes campos:



Abaixo, vamos criar a coluna TotalFaturamento que será a multiplicação dos valores das colunas Quantity e UnitPrice.

Com a coluna TotalFaturamento criada, vamos fazer o cálculo do volume de itens vendidos e do valor total vendido. Para isto utilizaremos a função pd.groupby() da biblioteca pandas.

O próximo passo é ordenar a tabela gerada em ordem decrescente de acordo com os valores de faturamento por meio da função pd.sort_values() e filtrar apenas as 10 primeiras linhas da tabela.

Acima, podemos verificar as 10 lojas com maior faturamento em pedidos.

Como não temos os nomes das lojas, vamos substituir os valores da coluna StoreId por nomes genéricos.
Exemplo: Loja 1, Loja 2 e por ai vai..

Aqui, definiremos um dicionário de cores para construção dos gráficos ao decorrer da análise.

Chegou o momento de plotar o primeiro gráfico para responder a primeira pergunta. Os gráficos serão construídos utilizando a biblioteca plotly.express(). Para entender como funcionam os parâmetros utilizados para a construção dos gráficos, recomendo uma leitura mais aprofundada da Documentação Plotly Express.

Esses produtos certamente representam grande parte do faturamento da empresa, portanto, as ações de vendas devem ser direcionadas para manter o Top 10 de vendas. Nesse contexto, faz sentido investigar, para cada loja, alguns pontos como:

Pergunta 2 - Qual ticket médio mensal dos pedidos apresentados? Qual o volume médio mensal de vendas (todas as lojas)?



Criaremos a coluna InvoiceMonth para armazenar o mês do pedido de acordo com os valores de data da coluna InvoiceDate
.

Podemos ver abaixo, que a coluna InvoiceMonth, já faz parte do nosso conjunto de dados. Utilizaremos esta coluna para fazer o cálculo do ticket mensal.

Nosso próximo passo é calcular a média da coluna TotalFaturamento, agrupando os valores por mês. Assim, obteremos os valores do ticket médio mensal dos pedidos.

Vamos substituir os valores numéricos dos meses na coluna Mês pelos nomes dos meses. Para esse fim, vamos utilizar a função setlocale() da biblioteca locale .

Já temos uma lista com os nomes dos meses em Português, basta substituir os valores da coluna Mês

Neste momento, já temos tudo que precisamos para plotar o gráfico com os valores do ticket mensal médio. Em caso de dúvidas sobre o código abaixo consulte a Documentação Plotly Express.

Uma forma de aumentar a participação no mercado e, em consequência disso, elevar o ticket médio, é realizar estudos de benchmarking entre as lojas.
O benchmarking é uma das maneiras de se posicionar no mercado, tomando como referência empresas concorrentes. A lógica é: se um estabelecimento do mesmo ramo consegue atender mais clientes que você, é sinal de que tem um diferencial que atrai as pessoas.


Além do ticket médio mensal, queremos saber qual é o volume médio de vendaspara dotas as lojas. Sendo assim, vamos contar as quantidadse de pedidos de todas as lojas agrupado por mês. Faremos isso com a função pd.groupby() associada a função count().

Novamente, substituiremos os valores numéricos da coluna Mês() pelos nomes dos meses.

Logo abaixo, podemos ver a tabela de volume mensal de vendas resultante das operações anteriores.

Vamos plotar o gráfico para visualizar melhor os volumes de venda e seu comportamento ao longo dos meses. Em caso de dúvidas sobre o código abaixo consulte a Documentação Plotly Express.

Podemos notar no gráfico acima que há um efeito de sazonalidade no volume de vendas, ou seja, períodos em que o volume de vendas varia muito, tanto positivamente quanto negativamente.

Neste cenário a empresa poderia investir em lançamentos de novos produtos nas duas janelas comerciais, ou seja, em março para minizar o efeito da sazonalidade no volume de vendas e em outubro para maximizar o efeito da sazonalidade e garantir produtos diferenciados para o mês de black friday.

Pergunta 3 - Existe alguma correlação entre o país e o volume de itens vendidos? Qual o item mais vendido e o menos vendido no país com maior volume de vendas?



Para saber se existe alguma correlação (sentido estatístico) aplicaremos o teste de correlação Spearman.

O teste de correlação de Spearman é semelhante ao de Pearson em termos de significado e interpretação. Entretanto, a utilização e o cálculo são diferentes. Usamos o método de Spearman quando queremos medir a correlação entre variáveis numéricas (lineares ou não) ou entre variáveis qualitativas e quantitativas.

Afinal, esse teste mede a relação monotônica entre duas variáveis. De forma simples, significa medir se X e Y variam juntas, mas não necessariamente em uma taxa constante. A tabela abaixo explica a intensidade da correlação entre duas váriáveis de acordo com os valores que R pode assumir.